package com.itheima.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration  // 标识为 Spring 配置类，用于定义 Bean
public class MybatisConfig {

    @Bean  // 将方法返回值注册为 Spring 容器中的 Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        // 1️⃣ 创建 MyBatis-Plus 核心插件拦截器（相当于插件容器）
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();

        // 2️⃣ 创建分页插件实例（指定数据库类型为 MySQL）
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
        // 设置单页最大记录数限制为 1000 条（防止恶意超大分页查询）
        paginationInnerInterceptor.setMaxLimit(1000L);

        // 3️⃣ 将分页插件添加到拦截器链中
        mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);

        return mybatisPlusInterceptor; // 返回配置好的拦截器
    }
}
